In multiprocessor environments, such as ATM (automated teller machine) networks and other large-scale database systems, multiple processes or threads (in larger systems, numbering in the thousands) share processor time.
Typically, at its execution stage a process will be allotted a time slice or “quantum” of processing time on a processor. If the process is not completed within the quantum of time, context information reflecting the level of completion of the process will be stored, and the process will be put to the end of a queue (the “Run Queue”) of processes awaiting access to a processor. This “context switch” itself consumes processing time, as data corresponding to the process being executed (including the context word, as will be understood) must be moved from the processor registers to main memory, typically RAM (random access memory), and another process must be moved from main memory to the process registers for subsequent execution by the processor.
In executing a process, a processor may require access to certain resources including I/O (input/output) devices and segments of memory. In the multi-processor context, conflicts between executing processes may arise if multiple processes require access to the same exclusive resource at the same time. Different techniques have been developed to address these types of process conflicts.
As a result of the processing expense of context switching, instead of simply generating a context switch if a process requires access to a resource which is already in use, one technique for resolving process conflicts involves the use of spin latches. Spin latches cause a processor to “spin” or loop in accordance with predetermined spin counter values, while the processor periodically checks to determine if the desired resource has become available.
In some instances, particularly in large-scale database systems, to optimize system performance it may be desirable to adjust spin counter values. However, generally this requires shutdown and reinitialization of a database system. For certain types of systems, such as banking systems, web servers and systems requiring operational capacity 24 hours a day, 7 days a week, shutting down the system is undesirable.
Accordingly, the inventors have recognized the need to provide a system and a method which addresses, at least in part, these and other shortcomings.